package com.micora.annotation;

import java.lang.annotation.*;

public class Test01 extends Object {




    @Override
    public String toString() {
        return super.toString();
    }


    @myAnnotation01(value = "123",values = {"1654","846"})
    public void test01() {
        
    }






    //定义一个注解

    //描述注解的使用范围（即：被修饰的注解可以用在什么地方）
    @Target({ElementType.METHOD, ElementType.TYPE})

    //描述注解保留的时间范围（即：被描述的注解在它所修饰的类中可以被保留到何时） RUNTIME>CLASS>SOURCE
    /**
     * SOURCE,    // 源文件保留
     * CLASS,       // 编译期保留，默认值
     * RUNTIME   // 运行期保留，可通过反射去获取注解信息
     */
    @Retention(RetentionPolicy.RUNTIME)

    //描述在使用 javadoc 工具为类生成帮助文档时是否要保留其注解信息
    @Documented

    //使被它修饰的注解具有继承性（如果某个类使用了被@Inherited修饰的注解，则其子类将自动具有该注解）
    @Inherited
    public @interface myAnnotation01 {
        String value();

        int age() default 17;

        String[] values();
    }
}

